﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entities
{
    public class UsuarioCliente : Usuario
    {
        #region Metodos Generales
        public UsuarioCliente()
        {
        }

        public UsuarioCliente(bool Nuevo)
        {
            Direccion = new Direccion();
            Provincia = new Provincia();
            Pais = new Pais();
            UsuarioTipo = new UsuarioTipo();
        }


        public static long Nuevo(UsuarioCliente parUsuarioCliente)
        {
            try
            {
                return DAL.UsuarioDAL.Nuevo(parUsuarioCliente);
            }
            catch (Exception ex)
            {
                //TODO falta agregar el LOG si da un error
                throw ex;
            }
        }

        public static void Modificar(UsuarioCliente parUsuarioCliente)
        {
            try
            {
                DAL.UsuarioDAL.Modificar(parUsuarioCliente);
            }
            catch (Exception ex)
            {
                //TODO falta agregar el LOG si da un error
                throw ex;
            }
        }

        public static void Eliminar(long parIdUsuarioCliente)
        {
            try
            {
                DAL.UsuarioDAL.Eliminar(parIdUsuarioCliente);
            }
            catch (Exception ex)
            {
                //TODO falta agregar el LOG si da un error
                throw ex;
            }
        }

        public static UsuarioCliente BuscarUno(long parIDUsuarioCliente)
        {
            try
            {
                UsuarioCliente oUsuarioCliente = new UsuarioCliente();
                oUsuarioCliente = (UsuarioCliente)DAL.UsuarioDAL.BuscarUnoPorID(parIDUsuarioCliente, false);
                return oUsuarioCliente;
            }
            catch (Exception ex)
            {
                //TODO falta agregar el LOG si da un error
                throw ex;
            }
        }


        public static UsuarioCliente BuscarUnoPorEmail (string pEmail)
        {
            try
            {
                UsuarioCliente oUsuarioCliente = new UsuarioCliente();
                oUsuarioCliente = (UsuarioCliente)DAL.UsuarioDAL.BuscarUnoPorEmail(pEmail);
                return oUsuarioCliente;
            }
            catch (Exception ex)
            {
                //TODO falta agregar el LOG si da un error
                throw ex;
            }
        }

        //public static List<UsuarioCliente> BuscarVarios(string parNombreUsuario, string parEmail, string parLocalidad, string parProvincia)
        //{
        //    try
        //    {
        //        List<UsuarioCliente> ListaUsuarios = new List<UsuarioCliente>();
        //        ListaUsuarios = DAL.UsuarioClienteDAL.BuscarVarios(parNombreUsuario, parEmail, parLocalidad, parProvincia);
        //        return ListaUsuarios;
        //    }
        //    catch (Exception ex)
        //    {
        //        //TODO falta agregar el LOG si da un error
        //        throw ex;
        //    }
        //}
        #endregion
    }
}
